package org.jsola.hr.web;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.jsola.core.Result;
import org.jsola.hr.dto.AttendShiftAddDTO;
import org.jsola.hr.dto.attendschedule.AttendScheduleSaveDTO;
import org.jsola.hr.dto.attendschedule.AttendScheduleUpdateDTO;
import org.jsola.hr.vo.AttendShiftVO;
import org.jsola.hr.vo.attendschedule.AttendScheduleVO;

/**
 * @author wxz
 */
@Api(tags = "hr-考勤排班")
public interface IAttendScheduleControllerAPI {


    /**
     * 新增考勤排班
     *
     * @param attendScheduleSaveDTO 考勤排班新增参数
     * @return 考勤排班展示对象
     */
    @ApiOperation(value = "新增考勤排班")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "attendScheduleSaveDTO", dataType = "AttendScheduleSaveDTO", value = "考勤排班新增参数", paramType = "body")
    })
    Result<String> save(AttendScheduleSaveDTO attendScheduleSaveDTO);

    /**
     * 修改考勤排班
     *
     * @param attendScheduleUpdateDTO 考勤排班修改参数
     * @return
     */
    @ApiOperation(value = "修改考勤排班")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "attendScheduleUpdateDTO", dataType = "AttendScheduleUpdateDTO", value = "考勤排班修改参数", paramType = "body")
    })
    Result<Integer> update(AttendScheduleUpdateDTO attendScheduleUpdateDTO);

    /**
     * 根据考勤规则ID查询考勤班次
     *
     * @param attendPlanId
     * @return
     */
    @ApiOperation(value="根据考勤规则ID查询考勤班次")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "attendPlanId", dataType = "String", value = "考勤规则id", paramType = "path")
    })
    Result<AttendScheduleVO> selectAttendPlanId(String attendPlanId);

}
